package com.qk.management.aop.anno;


import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 *
 * @author MrZhao
 * @created 2025-10-18 9:06
 * @description 缓存注解标记当前方法需要使用缓存增强
 *
 */
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Cacheable {

    /**
     * redis缓存key
     *
     * @return redis的key
     */
    String Key() default "";

    /**
     * redis缓存key的前缀
     *
     * @return redis的key的前缀
     */
    String keyPrefix() default "";

    /**
     * redis缓存key的过期时间
     *
     * @return redis的key的过期时间
     */
    long expireTime() default 0;

    /**
     * 过期时间单位
     *
     * @return 时间单位
     */
    TimeUnit expireTimeUnit() default TimeUnit.SECONDS;
}
